package com.sinopec.basemodule.api

import com.sinopec.basemodule.http.api.HttpResult
import com.sinopec.basemodule.model.ErrorPalletCodeResultModel
import com.sinopec.basemodule.model.PackSpecsTypeModel
import com.sinopec.basemodule.model.StockInListModel
import com.sinopec.basemodule.model.StockOutListModel
import io.reactivex.Observable
import retrofit2.http.Body
import retrofit2.http.Headers
import retrofit2.http.POST

/**
 * @author lwj
 * @ClassName: Service
 * @Description: 所有的Service层
 */
interface BaseModuleService {

    /**
     * 入库列表
     */
    @Headers("Content-Type: application/json")
    @POST("getTaskList")
    fun stockInList(@Body hashMap: HashMap<String, Any?>?): Observable<HttpResult<List<StockInListModel>?>?>?

    /**
     * 确认入库-编码校验
     */
    @Headers("Content-Type: application/json")
    @POST("submitPallet")
    fun confirmStockIn(@Body hashMap: HashMap<String, Any>?): Observable<HttpResult<List<ErrorPalletCodeResultModel>?>?>?

    /**
     * 确认入库完成(暂无)
     */
    @Headers("Content-Type: application/json")
    @POST("createBill")
    fun confirmStockInOrderFinish(@Body hashMap: HashMap<String?, Any?>?): Observable<HttpResult<Any?>?>?

    /**
     * 出库列表
     */
    @Headers("Content-Type: application/json")
    @POST("unUsed")
    fun stockOutList(@Body hashMap: HashMap<String, Any?>?): Observable<HttpResult<List<StockOutListModel>?>?>?

    /**
     * 确认出库-编码校验
     */
    @Headers("Content-Type: application/json")
    @POST("palletOutForHandy")
    fun confirmStockOut(@Body hashMap: HashMap<String, Any>?): Observable<HttpResult<List<ErrorPalletCodeResultModel>?>?>?

    /**
     * 确认出库完成(暂无)
     */
    @Headers("Content-Type: application/json")
    @POST("createBill")
    fun confirmStockOutOrderFinish(@Body hashMap: HashMap<String?, Any?>?): Observable<HttpResult<Any?>?>?

    /**
     * 日常盘点-获取包装规格列表
     */
    @Headers("Content-Type: application/json")
    @POST("getPackSpecsType")
    fun getPackSpecsType(@Body hashMap: HashMap<String, Any?>?): Observable<HttpResult<List<PackSpecsTypeModel>?>?>?

    /**
     * 确认日常盘点-编码校验
     */
    @Headers("Content-Type: application/json")
    @POST("palletDailyStocktaking")
    fun confirmDailyInventory(@Body hashMap: HashMap<String, Any>?): Observable<HttpResult<Any?>?>?
}